#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os, sys
import gdata
import gdata.docs.service

# email y password del usuario donde subir los archivos
# o sería mejor usar tokens:
# http://code.google.com/apis/documents/developers_guide_python.html#AuthAuthSub
email = ""
password = ""

# id de la aplicación
source = "aqpglug-aqpmagazine-0.1"

gd_client = gdata.docs.service.DocsService()

gd_client.email = email
gd_client.password = password
gd_client.source = source

gd_client.ProgrammaticLogin()

file_path = "doc_de_prueba.odt"
if not os.path.isfile(file_path):
  print 'Archivo no valido.'
  sys.exit()

file_name = os.path.basename(file_path)
title, ext = os.path.splitext(file_path)
ext = ext[1:].upper()

if not ext or ext not in gdata.docs.service.SUPPORTED_FILETYPES:
  print 'Archivo no permitido, revise la extension.'
  sys.exit()
else:
  content_type = gdata.docs.service.SUPPORTED_FILETYPES[ext]

try:
  ms = gdata.MediaSource(file_path=file_path, content_type=content_type)
except IOError:
  print 'Problemas leyendo archivo.'
  sys.exit()

if ext not in ['CVS', 'ODS', 'XLS', 'PPT', 'PPS']:
  print 'Subiendo documento...'
  entry = gd_client.UploadDocument(ms, title)

if entry:
  print 'Se logro subir el documento'
  print 'Documento accesible en:', entry.GetAlternateLink().href
else:
  print 'Error de subida.'

